import { createStore, createLogger } from 'vuex'
// 导入vuex数据持久化插件
import createPersistedstate from 'vuex-persistedstate'

// 导入子模块
import cart from './modules/cart'
import user from './modules/user'
import cate from './modules/cate'
// vue2 => new Vuex.store
// vue3 => createStore()
// 创建vuex实例并导出
export default createStore({
  // 注册子模块
  modules: {
    cart,
    user,
    cate
  },
  // 注册插件
  plugins: [
    /**
     * 用法：
     * 1.默认直接调用createPersistedState() =》 存储的key:vuex，存所有的
     * 2.实际开发需求：自定义存储的key和按需存储
     * 实现：createPersistedState(
     *  {
     *    key:'yourkey',
     *    paths:[...]
     *  }
     * )
     */
    // 1.数据持久化
    createPersistedstate({
      key: 'rabbit-data-t5',
      paths: ['user', 'cart']
    }),
    // 2.调试数据
    createLogger()
  ]
})
